﻿// 370. 整除链 X-factor Chains（挑战程序设计竞赛）.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include <vector>

using namespace std;

/*
https://www.papamelon.com/problem/370


定义一个序列：
X0,X1,X2,...,Xm。

满足：
X0=1
Xm=X，
X 是某个给定的正整数
Xi<Xi+1
Xi∣Xi+1，即Xi 整除Xi+1
​

给定正整数X 后，可能存在多个满足上述定义的序列。

现在我们希望找到最长的那些，同时统计有多少个。

输入
多组测试数据，以 EOF 结束
每组测试数据占据一行，一个整数，表示给定的
X(0<X≤2^20)
输出
每组测试数据输出一行，两个整数，分空格隔开
第一个整数表示最长的序列长度，第二个整数表示这样的序列有多少个
样例 1
输入
2
3
4
10
100
输出
1 1
1 1
2 1
2 2
4 6
*/

long long fac(long long x) {
	long long ans = 1;
	for (int i = x; i >= 1; i--) {
		ans *= i;
	}

	return ans;
}

void solve(int x) {
	vector<pair<int,int>> vp;
	long long sum = 0; vector<int> elesum;
	for (int i = 2; i <= x / i; i++) {
		int ans = 0;  
		if (x % i != 0) continue;
		while (x % i == 0) {
			x = x / i;
			ans++;
		}
		sum += ans; elesum.push_back(ans);
		vp.push_back(make_pair( i,ans ));
	}
	if (x > 1) { 
		vp.push_back(make_pair(x, 1));
		sum += 1; elesum.push_back(1);
	}
	cout << sum << " ";
	sum = fac(sum);
	for (int i = 0; i < elesum.size(); i++) {
		sum = sum / fac(elesum[i]);
	}
	cout << sum << endl;
}


int main()
{
	int n; 
	while (cin >> n) {
		solve(n);
	}
	return 0;
}
 